function len = nmat_dur(nmat, unit)
% function len = nmat_dur(nmat, unit)
%
% This function calculates the total duration of a note matrix, in either
% beats or seconds.
%
% Input:
%   nmat [mat]  - The note matrix
%   unit [str]  - The units to use, either 'sec' or 'beat' ['sec']
%
% Output:
%   len  [num]  - The total duration of the note matrix which is defined as
%                 the last note's onset time plus its duration.  Note that
%                 this final note need not occur in the last row of the
%                 note matrix.
%

% Copyright (C) 2010-2030 Graham Grindlay (grindlay@ee.columbia.edu)
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program.  If not, see <http://www.gnu.org/licenses/>.

if nargin < 2
    unit = 'sec';
end

[mo,mon] = max(onset(nmat, unit));
len = mo + dur(nmat(mon,:), unit);
